package leetCode.firstWeek;

import java.util.ArrayList;
import java.util.List;

public class Code_10 {
    /**
     * 输入:
     * s = "aa"
     * p = "a*"
     * 输出: true
     * 解释: 因为 '*' 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 'a'。
     * 因此，字符串 "aa" 可被视为 'a' 重复了一次。
     */
    public boolean isMatch(String s, String p) {
        if (s.charAt(0) == '*') {//开局就是*，直接return false
            return false;
        }
        List<Integer> starLocation = new ArrayList<>();
        for (int i = 1; i < p.length(); i++) {//将*号的前一个位置保存到starLocation中
            if (p.charAt(i) == '*') {
                starLocation.add(i - 1);
            }
        }


        return true;

    }

    /**
     * total表示总和
     * num表示有多少个数字的占位
     */
//    public List<List<Integer>> Probably(int num, int total) {
//        List<List<Integer>> tmp;
//
////        return
//    }

    static int ssum(int a[]) {
        int sum = 0;
        for (int i = 1; i < a.length; i++) {
            sum += a[i];
        }
        return sum;
    }

    static void dism(int n) {
        int a[] = new int[n + 1];
        int count = 0;
        int i, k;
        a[0] = -2;
        for (i = 1; i < n + 1; i++) {
            a[i] = 1;
        }

        k = n;
        while (a[k] != -1) {
            if (ssum(a) < n) k++;
            if (ssum(a) == n) {
                for (i = 1; i <= k; i++)
                    System.out.print(a[i] + " ");
                System.out.println();
                count++;
                a[k] = 0;
                while (a[--k] == 2)
                    a[k] = 0;
                //System.out.println("n="+count);
            }
            a[k]++;
        }
        System.out.println("n=" + count);
    }


}
